/**
  ******************************************************************************
  * @file    Project/Template/stm32f10x_it.c 
  * @author  MCD Application Team
  * @version V3.0.0
  * @date    04/06/2009
  * @brief   Main Interrupt Service Routines.
  *          This file provides template for all exceptions handler and 
  *          peripherals interrupt service routine.
  ******************************************************************************
  * @copy
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
  */ 

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_it.h"
#include "main.h"
#include "sdcard.h"
#include "touch.h"
#include "tmp100_driver.h"

/** @addtogroup Template_Project
  * @{
  */

/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/
//extern uint8_t USART2_Buffer_Rx;
extern uint8_t uiBackUpPriotity;
extern portTickType CTRL_IC_xFrequency;
extern __IO uint32_t TimeDisplay;
//extern uint8_t CTRL_IC_Start;
/******************************************************************************/
/*            Cortex-M3 Processor Exceptions Handlers                         */
/******************************************************************************/

/**
  * @brief  This function handles NMI exception.
  * @param  None
  * @retval : None
  */
void NMI_Handler(void)
{
}

/**
  * @brief  This function handles Hard Fault exception.
  * @param  None
  * @retval : None
  */

void HardFault_Handler(void)
{
    /* Go to infinite loop when Hard Fault exception occurs */
    printf("!!! HardFault_Handler !!!\r\n");
    NVIC_SystemReset();
    while(1)
    {
    }
}

/**
  * @brief  This function handles Memory Manage exception.
  * @param  None
  * @retval : None
  */
void MemManage_Handler(void)
{
  /* Go to infinite loop when Memory Manage exception occurs */
  NVIC_SystemReset();

  while (1)
  {
  }
}

/**
  * @brief  This function handles Bus Fault exception.
  * @param  None
  * @retval : None
  */
void BusFault_Handler(void)
{
  /* Go to infinite loop when Bus Fault exception occurs */
  NVIC_SystemReset();

  while (1)
  {
  }
}

/**
  * @brief  This function handles Usage Fault exception.
  * @param  None
  * @retval : None
  */
void UsageFault_Handler(void)
{
  /* Go to infinite loop when Usage Fault exception occurs */
  NVIC_SystemReset();

  while (1)
  {
  }
}


/**
  * @brief  This function handles Debug Monitor exception.
  * @param  None
  * @retval : None
  */
void DebugMon_Handler(void)
{}

/**
  * @brief  This function handles SC_USART global interrupt request.
  * @param  None
  * @retval None
  */
void SC_USART_IRQHandler(void)
{

}

void SDIO_IRQHandler(void)
{
    /* Process All SDIO Interrupt Sources */
    SD_ProcessIRQSrc();
}

void RTC_IRQHandler(void)
{
  if (RTC_GetITStatus(RTC_IT_SEC) != RESET)
  {
    /* Clear the RTC Second interrupt */
    RTC_ClearITPendingBit(RTC_IT_SEC);
  }
}

void EXTI9_5_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line6) != RESET)
    {
        GPIO_ResetBits(GPIOB, GPIO_Pin_5);   	
        EXTI_ClearITPendingBit(EXTI_Line6);
    }
}

void I2C2_ER_IRQHandler(void)
{
  /* Check on I2C2 Time out flag and clear it */
  if (I2C_GetITStatus(TMP100_I2C, I2C_IT_TIMEOUT))
  {
    I2C_ClearITPendingBit(TMP100_I2C, I2C_IT_TIMEOUT);
  }
  /* Check on I2C2 Arbitration Lost flag and clear it */
  if (I2C_GetITStatus(TMP100_I2C, I2C_IT_ARLO))
  {
    I2C_ClearITPendingBit(TMP100_I2C, I2C_IT_ARLO);
  } 

  /* Check on I2C2 PEC error flag and clear it */
  if (I2C_GetITStatus(TMP100_I2C, I2C_IT_PECERR))
  {
    I2C_ClearITPendingBit(TMP100_I2C, I2C_IT_PECERR);
  } 
  /* Check on I2C2 Overrun/Underrun error flag and clear it */
  if (I2C_GetITStatus(TMP100_I2C, I2C_IT_OVR))
  {
    I2C_ClearITPendingBit(TMP100_I2C, I2C_IT_OVR);
  } 
  /* Check on I2C2 Acknowledge failure error flag and clear it */
  if (I2C_GetITStatus(TMP100_I2C, I2C_IT_AF))
  {
    I2C_ClearITPendingBit(TMP100_I2C, I2C_IT_AF);
  }
  /* Check on I2C2 Bus error flag and clear it */
  if (I2C_GetITStatus(TMP100_I2C, I2C_IT_BERR))
  {
    I2C_ClearITPendingBit(TMP100_I2C, I2C_IT_BERR);
  }   
}


/**
  * @}
  */ 


/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
